﻿/**
 * 规则父类。
 */
Ext.define('Happy.metadata.rule.Base', {

    /**
     * 修改某个属性的配置。
     * 
     * @param {Happy.metadata.Metadata} metadata
     * @param {String} property
     * @param {Object} config
     */
    applyPropertyConfig: function (metadata, property, config) {
        Ext.applyIf(metadata.data.properties[property], config);
    },

    /**
    * 在所有的界面中隐藏指定的属性。
    * 
    * @param {Happy.metadata.Metadata} metadata
    * @param {String} property
    */
    hidePropertyInAllUI: function (metadata, property) {
        var me = this;

        me.applyPropertyConfig(metadata, property, {
            showInGrid: false,
            showInTreeGrid: false,
            showInForm: false
        });
    },

    /**
    * 只在表格中隐藏指定的属性。
    * 
    * @param {Happy.metadata.Metadata} metadata
    * @param {String} property
    */
    hidePropertyInGrid: function (metadata, property) {
        var me = this;

        me.applyPropertyConfig(metadata, property, {
            showInGrid: false,
            showInTreeGrid: false
        });
    }
});

